/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager.consultar;

import br.com.deployment.entidade.humana.Pessoa;
import br.com.deployment.servico.PessoaServico;
import br.com.deployment.util.Caracteres;
import br.com.deployment.utilitario.TipoPessoa;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author elyjr
 */
@ManagedBean
@SessionScoped
public class ManagerConsultarPessoa implements Serializable {

    @EJB
    PessoaServico pessoaServico;
    
    
    private Pessoa pessoa;
    private List<Pessoa> pessoas;
    private Boolean controle = true;
    private String nome;
    private String variavel;

    public ManagerConsultarPessoa() {
        controle = true;
    }

    @PostConstruct
    public void init() {
        pessoa = new Pessoa();
        pessoas = new ArrayList<Pessoa>();
        nome = new String();
        variavel = new String();
    }

    public void reinit(){
        pessoa = new Pessoa();
        pessoas = new ArrayList<Pessoa>();
        nome = new String();
        variavel = new String();
    }
    
    
    public void pesquisarPessoa() {

        if (controle == true) {
            pessoa.setNome(nome);
            
            if(variavel != null){
                pessoa.setCpf(Caracteres.removecaracter(variavel));
            }
            //pessoa.setEndereco(endereco);
            pessoas = pessoaServico.findPessoa(pessoa, TipoPessoa.Fisica);
            pessoa = new Pessoa();
        } else {

            pessoa.setNome(nome);
            if(variavel != null){
                pessoa.setCnpj(Caracteres.removecaracter(variavel));
            }
            // pessoa.setEndereco(endereco);
            pessoas = pessoaServico.findPessoa(pessoa, TipoPessoa.Juridica);
            pessoa = new Pessoa();
        }

    }

    public void redirect(String s) {
        FacesContext context = FacesContext.getCurrentInstance();
        try {
            reinit();
            context.getExternalContext().redirect(s);
        } catch (IOException ex) {
            Logger.getLogger(ManagerConsultarPessoa.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public List<Pessoa> getPessoas() {
        return pessoas;
    }

    public void setPessoas(List<Pessoa> pessoas) {
        this.pessoas = pessoas;
    }

    public Boolean getControle() {
        return controle;
    }

    public void setControle(Boolean controle) {
        this.controle = controle;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getVariavel() {
        return variavel;
    }

    public void setVariavel(String variavel) {
        this.variavel = variavel;
    }
}
